// 生成一个随机数
extern crate rand; // extern crate rand; 通知 Rust 我们要使用外部依赖
use rand::Rng; // Rng 是一个 trait，它定义了随机数生成器应实现的方法
use std::cmp::Ordering;
use std::io; // Rust 默认只在每个程序中引用少量类型 使用use 语句显式引入 // 引入Rng // 引入Ordering
fn main() {
    println!("猜猜数字");

    let secret_number = rand::thread_rng().gen_range(1..101); // 生成1到100的
    println!("数字是: {}", secret_number);
    loop {
        println!("请输入您的数字");
        let mut guess: String = String::new(); // let 创建变量  mut 表示变量可变  ::new 的 :: 语法表明 new 是 String 类型的一个 关联函数 一些语言中把它称为 静态方法
        io::stdin().read_line(&mut guess).expect("输入错误"); // 调用 read_line 方法从标准输入句柄获取用户输入。
       
         //处理输入无效报错，不要影响程序
        let guess: u32 = match guess.trim().parse() {
            Ok(num) => num,
            Err(_) => continue,
        };
        println!("您输入的数字是: {}", guess);

        match guess.cmp(&secret_number) {
            // 比较
            Ordering::Equal => {
                println!("恭喜你猜对了");
                break;
            },
            Ordering::Greater => println!("太大了"),
            Ordering::Less => println!("太小了"),
        }
    }
}

// 生成一个1到100 的随机数 需要引入 rand  crate
